﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using WebArchivosTelefonica.Jerarquias;

namespace WebArchivosTelefonica.Jerarquias
{
    /// <summary>
    /// Representa a los DataSource
    /// </summary>
    public class LinqDataSourceAdp : ILinqDataSource, IDisposable
    {
        private LinqDataSource _linqDataSource;
        
       
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public LinqDataSourceAdp()
        {
            _linqDataSource = new LinqDataSource();
            _linqDataSource.ContextTypeName = "WebArchivosTelefonica.Jerarquias.DataClassesArbolDataContext";
        }

        /// <summary>
        /// Nombre de la entidad en el contexto de datos
        /// </summary>
        public string TableName
        {
            get 
            {
                return _linqDataSource.TableName;
            }
            set
            {
                _linqDataSource.TableName = value;
            }
        }

        /// <summary>
        /// Expresión que representa el contenido del DataSource
        /// </summary>
        public string Where
        {
            get 
            {
                return _linqDataSource.Where;
            }
            set
            {
                _linqDataSource.Where = value;
            }
        }
        /// <summary>
        /// Sirve para ordenar el datasource
        /// </summary>
        public string OrderBy
        {
            get
            {
                return _linqDataSource.OrderBy;
            }
            set
            {
                _linqDataSource.OrderBy = value;
            }
        }

        /// <summary>
        /// Retorna el DataSource
        /// </summary>
        /// <returns></returns>
        public LinqDataSource GetLinqDataSource()
        {
            return _linqDataSource;
        }
        /// <summary>
        /// 
        /// </summary>
        public bool EnableViewState
        {
            get { return _linqDataSource.EnableViewState; }
            set { _linqDataSource.EnableViewState = value; }
        }

        #region IDisposable Members
        /// <summary>
        /// Dispose
        /// </summary>
        public void Dispose()
        {
            _linqDataSource.Dispose();
        }


        #endregion
    }
}
